<?php
//后台登陆验证控制器类
class CategoryController extends AuthController{
   private $model;

    // 自动运行方法
   public function __init(){
    // 为了不覆盖父类authcontorller的__init()方法
      parent::__init();
      $this->model=K('Category');

   }


// 显示所有
  public function index(){
    // 重组数组
   
     $data = Data::tree($this->model->all(), 'cname','cid','pid');

      $this->assign('data',$data);
 // p($data);die;
      $this->display();
   

     }


// 添加顶级分类
public function add(){
  // 获得类型
  
  if(IS_POST){
    // 调用模型里的添加方法，里面有自动验证
    if(!$this->model->addData()) {
     $this->error($this->model->error);
    }
     
     $this->success('添加成功');
  }

   $this->display();

}


// 修改分类 
public function edit_cate(){
  $cid=Q('get.cid',0,'intval');
                                                 
  if(IS_POST){
  // 执行修改
    if(!$this->model->edit($cid)){
      $this->error($this->model->error);
    }
      $this->success('修改成功',U('index'));

  }

  // 获得旧内容
  $olddata=$this->model->where("cid='$cid'")->find();
 
 
  $this->assign('olddata',$olddata);

  // 获得类型
   $type=K('Type')->all();

  $this->assign('type',$type);

  // 处理所属分类数据
  //更改所属分类，不能是自己或自己的子集
  // 1.找到当前cid所对应的子集
  $sonCid=$this->model->getSon($this->model->all(),$cid);
    // 把自己也压入
    $sonCid[]=$cid;
    // 排除自己和自己的子集
    $data=$this->model->where("cid not in(".implode(',',$sonCid).")")->all();
     
    // 把数组组合成树状结构
   $data = Data::tree($data, 'cname','cid','pid');
   // p($data);die;
   $this->assign('data',$data);




     $this->display();

}
// 修改子分类 
// public function edit_son(){
//   $cid=Q('get.cid',0,'intval');
                                                 
//   if(IS_POST){
//   // 执行修改
//     if(!$this->model->edit($cid)){
//       $this->error($this->model->error);
//     }
//       $this->success('修改成功',U('index'));

//   }

//   // 获得旧内容
//   $olddata=$this->model->where("cid='$cid'")->find();
 
 
//   $this->assign('olddata',$olddata);

//   // 获得类型
//    $type=K('Type')->all();
//   $this->assign('type',$type);

//   // 处理所属分类数据
//   //更改所属分类，不能是自己或自己的子集
//   // 1.找到当前cid所对应的子集
//   $sonCid=$this->model->getSon($this->model->all(),$cid);
//     // 把自己也压入
//     $sonCid[]=$cid;
//     // 排除自己和自己的子集
//     $data=$this->model->where("cid not in(".implode(',',$sonCid).")")->all();
     
//     // 把数组组合成树状结构
//    $data = Data::tree($data, 'cname','cid','pid');
//    // p($data);die;
//    $this->assign('data',$data);




//      $this->display();

// }

// 删除分类
public function del(){
 $cid=Q('get.cid',0,'intval');
 // 判断是否有子集分类
 $sonData=$this->model->where("pid='$cid'")->find();
 if($sonData){
  $this->error('请先删除下面的子集分类');
 }

 $this->model->where("cid='$cid'")->delete();

$this->success('删除成功');

}


// 添加子分类
public function add_son(){
$cid=Q('get.cid',0,'intval');
if(IS_POST){
 if(!$this->model->addData()){
    $this->error($this->model->error);
 }

 $this->success('添加成功');
 }
// 获得所属分类
 $fatherSon=$this->model->where("cid='$cid'")->find();
 $this->assign('fatherSon',$fatherSon);
 
 // 获得类型
   $type=K('Type')->all();
  $this->assign('type',$type);
   // p($type);die;
  $this->display();
}




// 点击收缩，查询要发过来的cid
public function ajaxText(){
   $cid=Q('post.cid',0,'intval');
   $data=$this->model->all();
   // 获取子集
   $sonCid=$this->model->getSon($data,$cid);
   // 返回json给js
   $this->ajax($sonCid);



}
      





 }
       
   

